function panic(i: Int) {
    // this should shadow the builtin panic function
    printf("called local panic\n");
}

function main() {
    panic(1);

    // the function signature differs, so this will fail to compile unless
    // it resolve to the real builtin panic function
    var x: function (Const[CString], args...) -> Void = kit.utils.panic;

    var l1: List[Int] = kit.list.List.Empty;
    var l2: kit.list.List[Int] = kit.list.List[Int].Empty;
    // var l3 = kit.list.List.Empty;
}
